package cnsatmsmart.automation.mmi.controller.Buffer;

import java.util.ArrayList;
import java.util.List;

/**
 * Merupakan kelas yang berisi list dari data Asterix21
 * @author SIK - PTIK, BPPT
 */
public class Asterix21DataList
{
    /* Atribut yang dimiliki oleh kelas Asterix21DataList */
        private List<Asterix21Data> ListOfAsterix21Data = new ArrayList<Asterix21Data>();

    /* Method-method lain yang dimiliki oleh kelas Asterix21DataList */
        /**
         * Prosedur untuk mengisi data Asterix21 ke List Asterix21
         * @param temp Objek Asterix21 yang akan diisi ke list
         */
        public void AddAx21Data(Asterix21Data temp)
        {
            synchronized (ListOfAsterix21Data)
            {
                this.ListOfAsterix21Data.add(temp);
            }
        }

        /**
         * Fungsi yang akan mengembalikan data pertama dari List Asterix21, sekaligus menghapusnya dari list
         * @return Data pertama dari list Asterix21
         */
        public Asterix21Data getAx21Data()
        {
            Asterix21Data ax21data;

            synchronized (ListOfAsterix21Data)
            {
                ax21data = new Asterix21Data(ListOfAsterix21Data.get(0));
                ListOfAsterix21Data.remove(0);
            }

            return ax21data;
        }

        /**
         * Fungsi untuk melakukan pengecekan terhadap List Asterix21
         * @return True jika list Asterix21 dalam keadaan kosong
         */
        public boolean isEmpty()
        {
            boolean isEmpty;
            synchronized (ListOfAsterix21Data){
                isEmpty = ListOfAsterix21Data.isEmpty();
            }
            return (isEmpty);
        }
}
